1.2.1 -
V-struct :
Les premières informations ont été publiées via
le programme pwdump inclus dans les distributions de SAMBA, version libre du
protocole SMB. A partir de là, Petter Nordahl-Haggen, auteur d'Offline NT
Password & Registry Editor http://home.eunet.no/~pnordahl/ntpasswd/, a
redécouvert la plupart des structures du fichier SAM, sous-structure de
la base de registre. Les comptes utilisateurs sont décrits dans
\SAM\Domains\Account\Users\Names\, il "suffit" de parcourir les structures du
fichier pour les lister.
L'offset et la longueur des champs sont
stockés dans ce qui est appelé la V structure, une structure
binaire de 204 octets (0xCC en hexadécimal):
0x0c,0x10
Login
0x18,0x1c Nom complet
0x24,0x28 Commentaires
0x48,0x4c
Répertoire utilisateur
0x9c,0xa0 Mot de passe LANMAN
0xa8,0xac Mot
de passe NTLM
Les offsets sont relatifs à la fin de cette
structure.
Au lieu d'utiliser une salt key, une clé propre
à chaque utilisateur, pour perturber le chiffrement afin que deux
individus avec le même mot de passe ne se retrouvent pas avec la forme
cryptée sur le disque, Microsoft a choisi de coder ces deux mots de passe
cryptés par un chiffrement DES. Les deux clés de 56 bits
utilisées sont dérivées du RID. Le RID est un numéro
sur 32 bits identifiant l'utilisateur, c'est l'équivalent de l'UID sur un
système Unix. La création des clés se fait au niveau des
octets: si le SID vaut 0x1234, la première clé va être
0x4321432, la seconde clé 0x1432143. Ce artifice ne renforce pas la
sécurité, c'est juste un codage. Dommage que les
développeurs de chez Microsoft ne se concentrent pas plus sur la
sécurité proprement dite.